package com.cskaoyan.javase.oop2._1extends._10final._3variable._0introduction;
/**
 * final修饰变量,表示最终的,最后的变量,即常量
 * final可以修饰三种变量:
 *      1.局部变量
 *      2.成员变量
 *      3.静态成员变量
 * 具体学习之前,我们明确三点:
 *      1.final修饰变量表示常量,称之为自定义常量
 *      常量的分类:
 *          a.字面值常量,直接将一个值写在代码中,就是字面值常量
 *          b.(final修饰的变量就是)自定义常量
 *              自定义常量是有数据类型和常量名的声明的
 *              所以
 *              关于自定义常量的命名有一个特殊形式,采用:
 *              单词每个字母全部大写,然后每个单词之间用"_"隔开
 *              比如一个表示最大值的常量
 *              命名为"MAX_VALUE"
 *              但是这种命名不是强制的,这里建议final修饰的静态成员变量采用这种命名
 *              final修饰局部变量或者成员变量时,不要采取这种方式.
 *
 *      2.final修饰某种类型的变量,仅表示它的取值不可变了,但是不会改变这个变量的存储位置,使用方式,定义位置,生命周期等等
 *      比如final修饰局部变量,表示这个局部变量取值不变是一个常量,但它仍然存储在方法的栈帧中,作用范围仍在大括号内部,使用方式也不会改变!
 *
 *      3.final修饰变量,可以修饰两种类型的变量:
 *          a.基本数据类型,表示其取值不可变.
 *          b.引用数据类型,修饰的是引用,表示引用不可变,即引用中存储的地址不可变
 *              即引用不能再指向一个新的对象了
 *              但是对象的状态(成员变量/属性的取值)仍然可以改变!
 *
 * @since 11:07
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}
